// 稀有度
export enum RarityEnum {
  QUESTION = -2,
  NOSTAR,
  STAR1 = 1,
  STAR2,
  STAR3,
  STAR4,
}

// 平/闪
export enum FoilEnum {
  FLAT,
  FLASH,
}

export enum AbilityEnum {
  CNT = 'CNT',
  TD = 'TD',
  OD = 'OD',
}

export enum LegionEnum {
  ATLAS = 'ATLAS',
  YOMAJINFRONT = '东妖军',
  EXVADERS = '侵略次元',
  WONDERVERSE = '惊奇宇宙',
  VOLNAR = '福尔纳',
}

export enum ClassEnum {
  S = 'S',
  L = 'L',
}

export type CardDetail = {
  card_id: number; //卡牌id
  card_no: string; //卡牌编号
  series_name: string; //系列名称
  name: string; //卡牌名称
  ename: string; //卡牌外文名
  description: string; //卡牌描述
  attack: number; //攻击力，无为-1
  defense: number; //防御力，无为-1
  power: number; //力量，无为-1
  ability: AbilityEnum; //能力 CNT、TD、OD 多选 英语逗号分割
  rarity: RarityEnum; //稀有度 稀有度（1~5），无星级-1，???为-2
  legion: LegionEnum; //军团（ATLAS、东妖军、侵略次元、惊奇宇宙、福尔纳） 多选 英语逗号分割
  level: number; //等级（-5，-2，0~4+），无等级 -999
  card_class: ClassEnum; //卡牌类别（S、L），可为空。
  card_category: string; //卡牌类型（单位、事件、场地、门将）
  attrs: string; //属性，多个逗号分隔
  is_foil: FoilEnum; //罕贵度 1-闪0-平
  rule: string; //规则
  img: string; //卡牌图片
  thumbnail: string; //缩略图
  artist: string; //画家
  is_vertical: 1 | 0; //是否竖版 1-竖版、0-横版
  standard_competition: 1 | 0; //是否为标准赛制 1-是，0-否
  other_ename: string; //其他版本的英文名
  other_version: OtherCardVerse[];
  min_price: number;
};

export type OtherCardVerse = Pick<CardDetail, 'card_id' | 'name' | 'ename' | 'is_foil' | 'series_name' | 'card_no'>;

export type CardItem = Pick<
  CardDetail,
  'level' | 'ability' | 'card_class' | 'card_id' | 'name' | 'img' | 'is_foil' | 'thumbnail' | 'other_ename' | 'legion'
>;

export type CardList = {
  total: number;
  rows: Array<CardItem>;
};

export type CardListQuery = Writable<
  Partial<
    Record<
      keyof Pick<CardDetail, 'card_class' | 'card_category' | 'rarity' | 'legion' | 'level' | 'attrs' | 'ability'>,
      string[]
    >
  > & {
    message?: string;
    series_id?: string[];
    page: number;
    page_size: number;
  }
>;
